Мандатное разграничение прав в Linux
Кармацкий Н. С. Группа НФИбд-01-21
Российский университет дружбы народов, Москва, Россия
29 Сентября 2024
Развить навыки администрирования ОС Linux. Получить первое практическое знакомство с технологией SELinux1. Проверить работу SELinx на практике совместно с веб-сервером Apache
Для чего нужен Apache сервер:
чтобы открывать динамические PHP-страницы,
для распределения поступающей на сервер нагрузки,
для обеспечения отказоустойчивости сервера,
чтобы потренироваться в настройке сервера и запуске PHP-скриптов.
service httpd status (рис. [-@fig:002]).ps auxZ | grep httpd найдем
веб-сервер Apache в списке процессов. Его контекст безопасности -
httpd_t (рис. [-@fig:003]).sestatus -bigrep httpd (рис. [-@fig:004]).seinfo. Множество пользователей - 8, ролей - 39, типов -
5135. (рис. [-@fig:005])./var/www,
с помощью команды ls -lZ /var/www следующие: владелец -
root, права на изменения только у владельца. Файлов в директории нет
(рис. [-@fig:006])./var/www/html нет файлов. (рис. [-@fig:007]).Далее политика ролевого разделения доступа RBAC используется процессами, но не файлами, поэтому роли не имеют никакого значения для файлов. Роль object_r используется по умолчанию для файлов на «постоянных» носителях и на сетевых файловых системах. (В директории /ргос файлы, относящиеся к процессам, могут иметь роль system_r. Если активна политика MLS, то могут использоваться и другие роли, например, secadm_r. Данный случай мы рассматривать не будем, как и предназначение :s0). Тип httpd_sys_content_t позволяет процессу httpd получить доступ к файлу. Благодаря наличию последнего типа мы получили доступ к файлу при обращении к нему через браузер. (рис. [-@fig:011]).
/var/www/html/test.html с
httpd_sys_content_t на любой другой, к которому процесс
httpd не должен иметь доступа, например, на samba_share_t:
chcon -t samba_share_t /var/www/html/test.html
ls -Z /var/www/html/test.html Контекст действительно
поменялся (рис. [-@fig:012]).файл не был отображён, хотя права доступа позволяют читать этот файл любому пользователю, потому что установлен контекст, к которому процесс httpd не должен иметь доступа.
tail /var/log/messages. Если в системе окажутся запущенными
процессы setroubleshootd и audtd, то вы также сможете увидеть ошибки,
аналогичные указанным выше, в файле /var/log/audit/audit.log. (рис.
[-@fig:014]).tail -nl /var/log/messages
(рис. [-@fig:018])./var/log/http/error_log,
/var/log/http/access_log и
/var/log/audit/audit.log и выясним, в каких файлах
появились записи. Запись появилась в файлу error_log (рис. [-@fig:019]).semanage port -a -t http_port_t -р tcp 81 После этого
проверяем список портов командой
semanage port -l | grep http_port_t Порт 81 появился в
списке (рис. [-@fig:020]).httpd_port_t (рис. [-@fig:022]).В ходе выполнения данной лабораторной работы были развиты навыки администрирования ОС Linux, получено первое практическое знакомство с технологией SELinux и проверена работа SELinux на практике совместно с веб-сервером Apache.